#!/usr/bin/env node

if (process.argv.length !== 3) {
    console.error('命令行参数格式不正确。正确格式: cmd base64_string')
    process.exit(1)
}

// 获取 base64 编码的字符串
const base64String = process.argv[2]

// 解码 base64 字符串为 utf8 字符串（第一种方式）
function decodeUtf8FromBase64(base64String) {
  try {
    const buffer = Buffer.from(base64String, 'base64')
    let parts = buffer.toString('utf8').split(':')
    return {
      name: parts[0],
      passwd: parts[1]
    }
  } catch (err) {
    console.error('解码错误:', err.message)
    process.exit(1)
  }
}

// 解码 base64 字符串为 utf8 字符串（第二种方式）
function decodeUtf8FromBase64ViaAtob(base64String) {
  try {
    let parts = atob(base64String).split(':')
    return {
      name: parts[0],
      passwd: parts[1]
    }
  } catch (err) {
    console.error('解码错误:', err.message)
    process.exit(1);
  }
}

// 解码 base64 字符串
const decodedUtf8String1 = decodeUtf8FromBase64(base64String)
const decodedUtf8String2 = decodeUtf8FromBase64ViaAtob(base64String)

// 打印解码后的用户名和密码信息
console.log('解码后的用户名和密码信息（方式一）:', decodedUtf8String1)
console.log('解码后的用户名和密码信息（方式二）:', decodedUtf8String2)